package com.sc.nft.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sc.nft.dto.CollectionChipCreateDTO;
import com.sc.nft.dto.CollectionChipUserGetDTO;
import com.sc.nft.entity.ActivityAward;
import com.sc.nft.entity.CollectionChip;
import com.sc.nft.entity.UserInfo;
import com.sc.nft.entity.dto.ActivityAwardSaveDTO;
import com.sc.nft.entity.dto.ActivityAwardSaveDetailsDTO;
import com.sc.nft.entity.dto.CollectionChipDTO;
import com.sc.nft.entity.vo.ActivityAwardSaveDetailsVO;
import com.sc.nft.entity.vo.CollectionChipDetailsVO;
import com.sc.nft.entity.vo.CollectionChipVO;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sc.nft.dto.CollectionChipReceiveDTO;
import com.sc.nft.entity.vo.CollectionChipReceivePageVO;
import com.sc.nft.entity.vo.CollectionChipUserDetailsVO;


public interface CollectionChipService {

    /**
     * 创建芯片程序
     * @param collectionChipDTO
     */
    void create(CollectionChipCreateDTO collectionChipDTO);


    /**
     * 后台芯片程序列表
     * @param collectionChipDTO
     * @return
     */
    Page<CollectionChipVO> getAdminCollectionChipPage(CollectionChipDTO collectionChipDTO);

    /**
     * 芯片 详情
     * @param id
     * @return
     */
    CollectionChipDetailsVO getCollectionChipDetails(Long id);

    /**
     * 用户端NFC扫描出来后的信息
     * @return
     */
    CollectionChipUserDetailsVO userGetCollectionChip(CollectionChipUserGetDTO dto, UserInfo userInfo);

    /**
     * 用户领取
     * @param dto
     * @return
     */
    void userGetCollectionChipReceive(CollectionChipUserGetDTO dto,UserInfo userInfo);

    /**
     * 领取记录
     * @param receiveDTO
     * @return
     */
    IPage<CollectionChipReceivePageVO> receiveRecord(CollectionChipReceiveDTO receiveDTO);

    /**
     * 识别记录
     * @param dto
     * @param user
     * @return
     */
    void userGetCollectionChipRecord(CollectionChipUserGetDTO dto, UserInfo user);
}
